#include <stdio.h>

void print_num(int *, int);
void swap(int *, int *);

/**
 * 题目：对10个数进行排序。
 * 程序分析：可以利用选择法，即从后9个比较过程中，选择一个最小的与第一个元素交换， 
 * 依次类推，即用第二个元素与后8个进行比较，并进行交换。
*/
int main(int argc, char const *argv[])
{
    int nums[] = {34, 54, 3, 23, 45, 21, 59, 32, 95, 37};
    int i, j;

    print_num(nums, 10);

    for(i = 0; i < 10; i++)
    {
        for(j = 0; j < 10 - i - 1; j++)
        {
            if(nums[j] > nums[j+1])
                swap(&nums[j], &nums[j+1]);
        }
    }

    print_num(nums, 10);

    return 0;
}

void swap(int *a, int *b)
{
    int temp;
    
    if(*a > *b)
    {
        temp = *a;
        *a = *b;
        *b = temp;
    }
}

void print_num(int *num, int len)
{
    for(int i = 0; i < len; i++)
    {
        printf("%d ", num[i]);
    }
    printf("\n");
}